package org.jeecg.modules.wechat.result.xcx;

import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
 * @author
 * @date 2018/11/7
 */
@Data
@Builder
public class PrivacySetting {
    /**
     * 用户隐私保护指引的版本，1表示现网版本；2表示开发版。默认是2开发版。
     */
    private Integer privacy_ver;
    /**
     * 用户隐私保护指引的版本，1表示现网版本；2表示开发版。默认是2开发版。
     */
    private OwnerSetting owner_setting;
    /**
     * 要收集的用户信息配置，可选择的用户信息类型参考下方详情。当privacy_ver传2或者不传时，setting_list是必填；当privacy_ver传1时，该参数不可传，否则会报错
     */
    private List<SettingList> setting_list;
    @Data
    @Builder
    public static class OwnerSetting{
        /**
         * 信息收集方（开发者）的邮箱地址，4种联系方式至少要填一种
         */
        private String contact_email;
        /**
         * 信息收集方（开发者）的手机号，4种联系方式至少要填一种
         */
        private String contact_phone;
        /**
         * 信息收集方（开发者）的 qq 号，4种联系方式至少要填一种
         */
        private String contact_qq;
        /**
         * 信息收集方（开发者）的微信号，4种联系方式至少要填一种
         */
        private String contact_weixin;
        /**
         * 如果开发者不使用微信提供的标准化用户隐私保护指引模板，也可以上传自定义的用户隐私保护指引，通过上传接口上传后可获取media_id
         */
        private String ext_file_media_id;
        /**
         * 通知方式，指的是当开发者收集信息有变动时，通过该方式通知用户。这里服务商需要按照实际情况填写，例如通过弹窗或者公告或者其他方式。
         */
        private String notice_method;
        /**
         * 存储期限，指的是开发者收集用户信息存储多久。如果不填则展示为【开发者承诺，除法律法规另有规定，开发者对你的信息保存期限应当为实现处理目的所必要的最短时间】，如果填请填数字+天，例如“30天”，否则会出现87072的报错。
         */
        private String store_expire_timestamp;
    }

    @Data
    @Builder
    public static class SettingList{
        /**
         * 官方的可选值参考下方说明；该字段也支持自定义
         */
        private String privacy_key;
        /**
         * 请填写收集该信息的用途
         */
        private String privacy_text;
    }
}
